//package com.cc.openeye.dialogUtil.internal.bubble
//
//import com.tencent.kuikly.core.base.ComposeView
//import com.tencent.kuikly.core.base.ComposeAttr
//import com.tencent.kuikly.core.base.ComposeEvent
//import com.tencent.kuikly.core.base.ViewBuilder
//import com.tencent.kuikly.core.base.ViewContainer
//
//import com.tencent.kuikly.core.base.ComposeAttr
//import com.tencent.kuikly.core.base.ComposeEvent
//import com.tencent.kuikly.core.base.ComposeView
//import com.tencent.kuikly.core.base.ViewBuilder
//import com.tencent.kuikly.core.base.Color
//import com.tencent.kuikly.core.coroutines.delay
//import com.tencent.kuikly.core.coroutines.launch
///**
// * 气泡视图组件
// *
// * 负责渲染带箭头的气泡弹窗，自动根据目标位置计算偏移
// */
//internal class BubbleView : ComposeView<BubbleAttr, BubbleEvent>() {
//    override fun created() {
//        super.created()
////        // 如果设置了自动关闭延迟，启动倒计时
////        _attr.bubbleConfig?.autoDismissDelay?.let { delay ->
////            viewScope.launch {
////                delay(delay)
////                _event.onDismiss?.invoke()
////            }
////        }
//    }
//    override fun body(): ViewBuilder {
//        val ctx = this
//        val config = _attr.bubbleConfig ?: return { }
//        val (offsetX, offsetY) = calculateBubbleOffset(config)
//        return {
//            attr {
//                position("absolute")
//                left("${offsetX}px")
//                top("${offsetY}px")
//                zIndex(10000)
//                config.maxWidth?.let { maxWidth("${it}px") }
//            }
//            // 气泡容器（包含箭头和内容）
//            View {
//                attr {
//                    display("flex")
//                    flexDirection(
//                        when (config.position) {
//                            BubblePosition.TOP, BubblePosition.TOP_START, BubblePosition.TOP_END -> "column"
//                            BubblePosition.BOTTOM, BubblePosition.BOTTOM_START, BubblePosition.BOTTOM_END -> "column-reverse"
//                            BubblePosition.LEFT -> "row"
//                            BubblePosition.RIGHT -> "row-reverse"
//                        }
//                    )
//                    alignItems("center")
//                }
//
//                // 内容区域
//                View {
//                    attr {
//                        backgroundColor(config.backgroundColor)
//                        borderRadius("${config.cornerRadius}px")
//                        padding("12px", "16px")
//                        boxShadow("0 2px 8px rgba(0,0,0,0.15)")
//                    }
//                    // 用户自定义内容
//                    ctx._attr.content?.invoke(this)
//                }
//            }
//        }
//    }
//    /**
//     * 计算气泡的偏移位置
//     */
//    private fun calculateBubbleOffset(config: BubbleConfig): Pair<Float, Float> {
//        val arrowSize = config.arrowSize
//        val offset = config.offset
//        return when (config.position) {
//            BubblePosition.TOP_CENTER -> {
//                val x = config.targetX + config.targetWidth / 2
//                val y = config.targetY - arrowSize - offset
//                Pair(x, y)
//            }
//            BubblePosition.BOTTOM_CENTER -> {
//                val x = config.targetX + config.targetWidth / 2
//                val y = config.targetY + config.targetHeight + arrowSize + offset
//                Pair(x, y)
//            }
//            BubblePosition.START_CENTER -> {
//                val x = config.targetX - arrowSize - offset
//                val y = config.targetY + config.targetHeight / 2
//                Pair(x, y)
//            }
//            BubblePosition.END_CENTER -> {
//                val x = config.targetX + config.targetWidth + arrowSize + offset
//                val y = config.targetY + config.targetHeight / 2
//                Pair(x, y)
//            }
//            BubblePosition.TOP_START -> {
//                val x = config.targetX + arrowSize * 2
//                val y = config.targetY - arrowSize - offset
//                Pair(x, y)
//            }
//            BubblePosition.TOP_END -> {
//                val x = config.targetX + config.targetWidth - arrowSize * 2
//                val y = config.targetY - arrowSize - offset
//                Pair(x, y)
//            }
//            BubblePosition.BOTTOM_START -> {
//                val x = config.targetX + arrowSize * 2
//                val y = config.targetY + config.targetHeight + arrowSize + offset
//                Pair(x, y)
//            }
//            BubblePosition.BOTTOM_END -> {
//                val x = config.targetX + config.targetWidth - arrowSize * 2
//                val y = config.targetY + config.targetHeight + arrowSize + offset
//                Pair(x, y)
//            }
//
//            BubblePosition.START_TOP -> TODO()
//            BubblePosition.START_BOTTOM -> TODO()
//            BubblePosition.END_TOP -> TODO()
//            BubblePosition.END_BOTTOM -> TODO()
//        }
//    }
//
//    override fun createAttr() = BubbleAttr()
//    override fun createEvent() = BubbleEvent()
//}
///**
// * 气泡属性
// */
//internal class BubbleAttr : ComposeAttr() {
//    var bubbleConfig: BubbleConfig? = null
//    var content: (ViewBuilder.() -> Unit)? = null
//}
///**
// * 气泡事件
// */
//internal class BubbleEvent : ComposeEvent() {
//    var onDismiss: (() -> Unit)? = null
//}